package serial_cli

//
//import (
//	"go-iot-gateway/pkg/serial"
//	"io"
//	"log"
//	"time"
//)
//
//const (
//	rtuMinSize          = 10
//	rtuMaxSize          = 200 + rtuMinSize + 2
//	rtuErrExceptionSize = 13
//
//	ReadDataDomainMaxSize  = 200
//	WriteDataDomainMaxSize = 50
//)
//
//func test() {
//	// 串口配置
//	config := &serial.Config{
//		Name: "/dev/ttyS0", // 请替换为实际的串口名称
//		//Name:        "COM1", // 请替换为实际的串口名称
//		Baud:        1200,
//		Size:        8,
//		Parity:      serial.ParityEven,
//		StopBits:    serial.Stop1,
//		ReadTimeout: 7 * time.Second,
//	}
//
//	// 打开串口
//	port, err := serial.OpenPort(config)
//	if err != nil {
//		log.Fatal(err)
//	}
//	log.Printf("连接成功")
//
//	defer port.Close()
//
//	// 发送数据
//	//message := []byte{0xfe, 0xfe, 0xfe, 0xfe, 0x68, 0x41, 0x02, 0x79, 0x45, 0x01, 0x01, 0x68, 0x11, 0x04, 0x33, 0x33, 0x33, 0x33, 0xb4, 0x16}
//	// fe fe fe fe 68 80 61 13 20 00 31 68 11 04 33 33 33 33 f6 16
//	//message := []byte{0xFE, 0xFE, 0xFE, 0xFE, 0x68, 0x80, 0x61, 0x13, 0x20, 0x00, 0x31, 0x68, 0x11, 0x04, 0x33,
//	//	0x35, 0x33, 0x33, 0xF8, 0x16}
//
//	//fe fe fe fe 68 80 61 13 20 00 31 68 11 04 33 33 33 33 f6 16
//	//fe fe fe fe 68 49 01 08 52 01 01 68 11 04 33 33 34 33 58 16
//	message := []byte{0xfe, 0xfe, 0xfe, 0xfe, 0x68, 0x49, 0x01, 0x08, 0x52, 0x01, 0x01, 0x68, 0x11, 0x04, 0x33,
//		0x33, 0x34, 0x33, 0x58, 0x16}
//
//	written, err := port.Write(message)
//	if err != nil {
//		log.Printf("Error writing to port: %v", err)
//		return
//	}
//	log.Printf("Sent %d bytes: % x", written, message)
//
//	time.Sleep(5 * time.Second)
//
//	var n, n1 int
//	var data [rtuMaxSize]byte
//	// read frame head
//	n, err = io.ReadAtLeast(port, data[:], rtuMinSize)
//	if err != nil {
//		return
//	}
//	dataDomainLen := int(data[9])
//	bytesToRead := rtuMinSize + dataDomainLen + 2
//	// read remaining data
//	if n < bytesToRead {
//		if bytesToRead <= rtuMaxSize {
//			if bytesToRead > n {
//				n1, err = io.ReadFull(port, data[n:bytesToRead])
//				n += n1
//			}
//		}
//	}
//	if err != nil {
//		return
//	}
//
//	//// 接收数据
//	//reader := bufio.NewReader(port)
//	//for {
//	//	line, _, err := reader.ReadLine()
//	//	if err != nil {
//	//		log.Printf("Error reading from port: %v", err)
//	//		break
//	//	}
//	log.Printf("Received %d bytes: % x", len(data), data)
//	//
//	//	// 在这里处理接收到的数据，比如解析协议、更新状态等
//	//
//	//	// 可根据实际需求调整等待时间或使用更复杂的同步机制
//	//	time.Sleep(100 * time.Millisecond)
//	//
//	//}
//	//
//	//
//}
